package com.gdms.service;

import java.util.List;
import java.util.Map;

import com.gdms.entity.*;

/**
 * 添加学生
 * 学生列表
 * 根据 id 获得学生信息
 * 更新学生信息
 * 删除学生信息
 * 查询学生信息
 * 根据 no 获得学生信息
 * 获得选题列表(除了已选的、不可选的课题)
 * 根据 学生id 获得选题信息(查看该学生是否选择了课题，没有的话返回null)
 * 添加选题信息(提交学生的选题信息)
 * 删除选题信息(学生退选课题)
 * 根据 选题id 获得TeacherTaskBookOpening 信息
 * 根据 学生id 获得StudentTaskBookOpening 信息
 * 上传任务书
 * 上传开题报告
 * 根据学生id 获得任务书和开题报告 Map(name,path)
 * 删除开题报告、任务书
 * 根据 任务书路径 或 开题报告路径 获得信息
 * 根据 课题id 获得课题信息
 * 根据 学生id 获得阶段任务
 * 显示公告信息
 * 上传论文文件信息
 * 根据 学生id 获得学生提交的论文信息
 * 根据 文件目录 获得学生提交的论文信息
 * 根据 学生id 删除学生提交的论文信息
 * 根据 学生id 获得学生提交的论文信息(重复的)
 * 添加学生提出的疑惑
 * 列出所有的疑惑
 */

public interface IStudentService {
	int addStudent(Student student);
	List<Student> showAllStudent();
	Student getStudentNameById(int id);
	int updateStudent(Student student);
	int deleteStudent(int id);
	List<Student> showStudentOne1(String studentNo);
	List<Student> showStudentOne2(String studentName);
	List<Student> showStudentOne3(String studentNo,String studentName);
	Student getStudentByNo(String studentNo);
	List<Subject> availableSubjectSelect();
	SubjectSelect chosenSubject(int studentId);
	int addSubjectSelect(SubjectSelect subjectSelect);
	int deleteSubjectSelect(int studentId);
	TeacherReport getFilePathBySubjectId(int subjectId);
	StudentReport getStudentReportInfoByStudentId(int studentId);
	int uploadOpeningReport(int studentId,String filePath);
	int uploadTaskBook(int studentId,String filePath);
	int uploadFeasibilityAnalysisReport(int studentId,String filePath);
	int uploadDemandAnalysisReport(int studentId,String filePath);
	int uploadSummaryDesignReport(int studentId,String filePath);
	int uploadDatabaseFile(int studentId,String filePath);
	Map<String,String> getStudentReportToMap(int studentId);
	int resetTaskBook(int studentId);
	int resetOpeningReport(int studentId);
	StudentReport getInfoByTaskBookPath(String taskBookPath);
	StudentReport getInfoByOpeningReportPath(String openingReportPath);
	Subject getThesisInfoById(int subjectId);
	List<TeacherProgress> getTeacherProgressByStudentId(int studentId);
	List<Announcement> showAllAnnouncement();
	int uploadSubjectInfo(int studentId,String filePath);
	SubjectInfo getInfoByStudentId(int studentId);
	SubjectInfo getInfoByFilePath(String filePath);
	int deleteSubjectInfo(int studentId);
	SubjectInfo getSubjectInfoByStudentId(int studentId);
	int addDoubt(Doubt doubt);
	List<Doubt> getAllDoubtByStudent(int studentId);
	String getSubjectDescription(int subjectId);
}

